LEADTOOLS Medical (Leadtools.Dicom.Scu assembly)
LEAD Technologies, Inc

Create<TData>(DicomScp,TData) Method

Example 





The type of the data to create the dataset from.
The peer connection to send the N-CREATE-REQ to.
The data to send in the request.
Sends an N-CREATE-REQ to the SCP.
Syntax
public void Create<TData>( 
   DicomScp Scp,
   TData Data
)
'Declaration
 
Public Overloads Sub Create(Of TData)( _
   ByVal Scp As DicomScp, _
   ByVal Data As TData _
) 
'Usage
 
Dim instance As PerformedProcedureStepScu
Dim Scp As DicomScp
Dim Data As TData
 
instance.Create(Of TData)(Scp, Data)
public void Create<TData>( 
   DicomScp Scp,
   TData Data
)
 function Leadtools.Dicom.Scu.PerformedProcedureStepScu.Create``1(DicomScp,``0)( 
   Scp ,
   Data 
)
public:
void Creategeneric<typename TData>
( 
   DicomScp^ Scp,
   TData^ Data
) 

Parameters

Scp
The peer connection to send the N-CREATE-REQ to.
Data
The data to send in the request.

Type Parameters

TData
The type of the data to create the dataset from.
Remarks
A DicomDataset will be created from the Data parameter. This dataset will then be sent in the N-CREATE-REQ. The Data class should be decorated with the correct attributes for creating the dataset.
Example
 
Private WorkLists As New List(Of ModalityWorklistResult)()


Public Sub PerformMPPS()
   DicomEngine.Startup()
   DicomNet.Startup()

   Dim query As New ModalityWorklistQuery()
   Dim scp As New DicomScp()
   Dim findMwl As New QueryRetrieveScu()

   scp.AETitle = "MWL_SERVER"
   scp.Port = 104
   scp.Timeout = 60
   scp.PeerAddress = IPAddress.Parse("192.168.0.209")
   findMwl.AETitle = "LEAD_CLIENT"
   findMwl.Find(Of ModalityWorklistQuery, ModalityWorklistResult)(scp, query, AddressOf FoundWorklist)

   '
   ' Create a Modality Perform Procedure Step
   If WorkLists.Count > 0 Then
      Dim mpps As ModalityPerformedProcedureStep = ModalityPerformedProcedureStep.From(WorkLists(0))
      Dim pps As New PerformedProcedureStepScu()

      pps.AETitle = "LEAD_CLIENT"
      AddHandler pps.BeforeNCreate, AddressOf pps_BeforeNCreate
      AddHandler pps.AfterNCreate, AddressOf pps_AfterNCreate
      AddHandler pps.BeforeNSet, AddressOf pps_BeforeNSet
      AddHandler pps.AfterNSet, AddressOf pps_AfterNSet

      '
      ' Initialize required procedure step variables
      '
      mpps.PerformedStationAeTitle = Environment.MachineName
      mpps.PerformedProcedureStepStartDate = DateTime.Now
      mpps.PerformedProcedureStepStartTime = DateTime.Now
      mpps.PerformedSeriesSequence(0).ProtocolName = ModalityPerformedProcedureStep.RandomId(16)
      mpps.PerformedSeriesSequence(0).SeriesInstanceUID = "1.2.3.4.5.890.1232"
      mpps.SOPInstance.SOPInstanceUid = "1.2.3.4.5.890.1240.1"

      Try
         pps.Create(Of ModalityPerformedProcedureStep)(scp, mpps)

         '
         ' Set the procedure step to done
         '
         mpps.PerformedProcedureStepEndDate = DateTime.Now
         mpps.PerformedProcedureStepEndTime = DateTime.Now
         mpps.PerformedProcedureStepStatus = "COMPLETED"
         pps.[Set](Of ModalityPerformedProcedureStep)(scp, mpps)
      Catch e As Exception
         Console.WriteLine(e.Message)
      End Try
   End If

   DicomEngine.Shutdown()
   DicomNet.Startup()
End Sub

Private Sub FoundWorklist(ByVal result As ModalityWorklistResult, ByVal ds As DicomDataSet)
   WorkLists.Add(result)
End Sub

Private Sub pps_BeforeNCreate(ByVal sender As Object, ByVal e As CommonEventArgs)
   Console.WriteLine("Before N-CREATE-REQ")
   Console.WriteLine(vbTab & "Affected Class: " & e.AffectedClass)
   Console.WriteLine(vbTab & "Instance: " & e.Instance)
   Console.WriteLine(vbTab & "MessageId: " & e.MessageID.ToString())
   Console.WriteLine(vbTab & "PresentationId: " & e.PresentationID.ToString())
End Sub

Private Sub pps_AfterNCreate(ByVal sender As Object, ByVal e As StatusCommonEventArgs)
   Console.WriteLine("After N-CREATE-REQ")
   Console.WriteLine(vbTab & "Affected Class: " & e.AffectedClass)
   Console.WriteLine(vbTab & "Instance: " & e.Instance)
   Console.WriteLine(vbTab & "MessageId: " & e.MessageID.ToString())
   Console.WriteLine(vbTab & "PresentationId: " & e.PresentationID.ToString())
   Console.WriteLine(vbTab & "Status: " & e.Status.ToString())
End Sub

Private Sub pps_BeforeNSet(ByVal sender As Object, ByVal e As CommonEventArgs)
   Console.WriteLine("Before N-SET-REQ")
   Console.WriteLine(vbTab & "Affected Class: " & e.AffectedClass)
   Console.WriteLine(vbTab & "Instance: " & e.Instance)
   Console.WriteLine(vbTab & "MessageId: " & e.MessageID.ToString())
   Console.WriteLine(vbTab & "PresentationId: " & e.PresentationID.ToString())
End Sub

Private Sub pps_AfterNSet(ByVal sender As Object, ByVal e As StatusCommonEventArgs)
   Console.WriteLine("After N-CREATE-REQ")
   Console.WriteLine(vbTab & "Affected Class: " & e.AffectedClass)
   Console.WriteLine(vbTab & "Instance: " & e.Instance)
   Console.WriteLine(vbTab & "MessageId: " & e.MessageID.ToString())
   Console.WriteLine(vbTab & "PresentationId: " & e.PresentationID.ToString())
   Console.WriteLine(vbTab & "Status: " & e.Status.ToString())
End Sub
List<ModalityWorklistResult> WorkLists = new List<ModalityWorklistResult>();


public void PerformMPPS()
{
    DicomEngine.Startup();
    DicomNet.Startup();

    ModalityWorklistQuery query = new ModalityWorklistQuery();
    DicomScp scp = new DicomScp();
    QueryRetrieveScu findMwl = new QueryRetrieveScu();

    scp.AETitle = "MWL_SERVER";
    scp.Port = 104;
    scp.Timeout = 60;
    scp.PeerAddress = IPAddress.Parse("192.168.0.209");
    findMwl.AETitle = "LEAD_CLIENT";
    findMwl.Find<ModalityWorklistQuery, ModalityWorklistResult>(scp, query, FoundWorklist);

    //
    // Create a Modality Perform Procedure Step
    if (WorkLists.Count > 0)
    {
        ModalityPerformedProcedureStep mpps = ModalityPerformedProcedureStep.From(WorkLists[0]);
        PerformedProcedureStepScu pps = new PerformedProcedureStepScu();

        pps.AETitle = "LEAD_CLIENT";
        pps.BeforeNCreate += new EventHandler<Leadtools.Dicom.Scu.Common.CommonEventArgs>(pps_BeforeNCreate);
        pps.AfterNCreate += new EventHandler<StatusCommonEventArgs>(pps_AfterNCreate);
        pps.BeforeNSet += new EventHandler<CommonEventArgs>(pps_BeforeNSet);
        pps.AfterNSet += new EventHandler<StatusCommonEventArgs>(pps_AfterNSet);

        //
        // Initialize required procedure step variables
        //

        mpps.PerformedStationAeTitle = Environment.MachineName;
        mpps.PerformedProcedureStepStartDate = DateTime.Now;
        mpps.PerformedProcedureStepStartTime = DateTime.Now;
        mpps.PerformedSeriesSequence[0].ProtocolName = ModalityPerformedProcedureStep.RandomId(16);
        mpps.PerformedSeriesSequence[0].SeriesInstanceUID = "1.2.3.4.5.890.1232";
        mpps.SOPInstance.SOPInstanceUid = "1.2.3.4.5.890.1240.1";

        try
        {
            pps.Create<ModalityPerformedProcedureStep>(scp, mpps);

            //
            // Set the procedure step to done
            //

            mpps.PerformedProcedureStepEndDate = DateTime.Now;
            mpps.PerformedProcedureStepEndTime = DateTime.Now;
            mpps.PerformedProcedureStepStatus = "COMPLETED";
            pps.Set<ModalityPerformedProcedureStep>(scp, mpps);                    
        }
        catch (Exception e)
        {
            Console.WriteLine(e.Message);
        }
    }

    DicomEngine.Shutdown();
    DicomNet.Startup();
}        

private void FoundWorklist(ModalityWorklistResult result, DicomDataSet ds)
{
    WorkLists.Add(result);
}

void pps_BeforeNCreate(object sender, CommonEventArgs e)
{
    Console.WriteLine("Before N-CREATE-REQ");
    Console.WriteLine("\tAffected Class: " + e.AffectedClass);
    Console.WriteLine("\tInstance: " + e.Instance);
    Console.WriteLine("\tMessageId: " + e.MessageID.ToString());
    Console.WriteLine("\tPresentationId: " + e.PresentationID.ToString());
}

void pps_AfterNCreate(object sender, StatusCommonEventArgs e)
{
    Console.WriteLine("After N-CREATE-REQ");
    Console.WriteLine("\tAffected Class: " + e.AffectedClass);
    Console.WriteLine("\tInstance: " + e.Instance);
    Console.WriteLine("\tMessageId: " + e.MessageID.ToString());
    Console.WriteLine("\tPresentationId: " + e.PresentationID.ToString());
    Console.WriteLine("\tStatus: " + e.Status.ToString());
}        

void pps_BeforeNSet(object sender, CommonEventArgs e)
{
    Console.WriteLine("Before N-SET-REQ");
    Console.WriteLine("\tAffected Class: " + e.AffectedClass);
    Console.WriteLine("\tInstance: " + e.Instance);
    Console.WriteLine("\tMessageId: " + e.MessageID.ToString());
    Console.WriteLine("\tPresentationId: " + e.PresentationID.ToString());
}

void pps_AfterNSet(object sender, StatusCommonEventArgs e)
{
    Console.WriteLine("After N-CREATE-REQ");
    Console.WriteLine("\tAffected Class: " + e.AffectedClass);
    Console.WriteLine("\tInstance: " + e.Instance);
    Console.WriteLine("\tMessageId: " + e.MessageID.ToString());
    Console.WriteLine("\tPresentationId: " + e.PresentationID.ToString());
    Console.WriteLine("\tStatus: " + e.Status.ToString());
}
Requirements

Target Platforms: Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

See Also

Reference

PerformedProcedureStepScu Class
PerformedProcedureStepScu Members
Overload List

 

 


Products | Support | Contact Us | Copyright Notices

© 2006-2012 All Rights Reserved. LEAD Technologies, Inc.

Leadtools.Dicom.Scu requires a Medical toolkit license and unlock key. For more information, refer to: LEADTOOLS Toolkit Features